package com.aaa.tmr.service.impl;

import com.aaa.tmr.entity.Progress;
import com.aaa.tmr.dao.ProgressDao;
import com.aaa.tmr.service.ProgressService;
import org.springframework.stereotype.Service;
import com.github.pagehelper.PageInfo;
import com.github.pagehelper.PageHelper;

import javax.servlet.http.HttpSession;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

/**
 * (Progress)表服务实现类
 *
 * @author makejava
 * @since 2021-03-24 18:39:06
 */
@Service("progressService")
public class ProgressServiceImpl implements ProgressService {
    @Resource
    private ProgressDao progressDao;
    @Resource
    private HttpSession session;

    /**
     * 通过ID查询单条数据
     *
     * @param progressId 主键
     * @return 实例对象
     */
    @Override
    public Progress queryById(Integer progressId) {
        return this.progressDao.queryById(progressId);
    }

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    @Override
    public List<Progress> queryAllByLimit(int offset, int limit) {
        return this.progressDao.queryAllByLimit(offset, limit);
    }

    /**
     * 新增数据
     *
     * @param progress 实例对象
     * @return 实例对象
     */
    @Override
    public Progress insert(Progress progress) {
        this.progressDao.insert(progress);
        return progress;
    }

    /**
     * 修改数据
     *
     * @param progress 实例对象
     * @return 实例对象
     */
    @Override
    public Progress update(Progress progress) {
        this.progressDao.update(progress);
        return this.queryById(progress.getProgressId());
    }

    /**
     * 通过主键删除数据
     *
     * @param progressId 主键
     * @return 是否成功
     */
    @Override
    public boolean deleteById(Integer progressId) {
        return this.progressDao.deleteById(progressId) > 0;
    }

    /**
     * 通过实体作为筛选条件查询
     *
     * @param progress 实例对象
     * @return 对象列表
     */
    @Override
    public PageInfo queryAll(int pageNo, int pageSize, Progress progress) {

        PageHelper.startPage(pageNo, pageSize);
        return new PageInfo<Progress>(this.progressDao.queryAll(progress));
    }

    /**
     * 通过主键批量删除数据
     *
     * @param progressIds 主键
     * @return 影响行数
     */
    @Override
    public int batchDeleteById(String progressIds) {

        return progressDao.batchDeleteById(progressIds);
    }
    /**
     * 按年月查询图标显示数据
     *
     * @param year
     * @param month
     * @return
     */
    @Override
    public List<Map> queryShowChartData(int year, int month) {
        return progressDao.queryShowChartData(year,month);
    }

}
